1. Technical Field
Some embodiments of the present invention generally relate to power management. In particular, certain embodiments relate to managing power in computing systems.
2. Discussion
As the trend toward advanced central processing units (CPUs) with more transistors and higher frequencies continues to grow, computer designers and manufacturers are often faced with corresponding increases in power and energy consumption. Furthermore, manufacturing technologies that provide faster and smaller components can at the same time result in increased leakage power. Particularly in mobile computing environments, increased power consumption can lead to overheating, which may negatively affect performance, and can significantly reduce battery life.
Because batteries typically have a limited capacity, running the processor of a mobile computing system more than necessary could drain the capacity more quickly than desired. Some modern mobile computing systems therefore attempt to conserve power by placing the processor in various low power/idle states when there are no instructions to be executed. While idle states can be effective, the ability to place the processor in the idle power states may be constrained by other components of the system. For example, when reading or writing to a storage device such as a hard disk drive (HDD), an integrated drive electronics (IDE) controller generally prevents the processor from entering the deeper idle states because the cache of the processor does not support coherency in these states.
Cache coherency is essentially a protocol for managing the caches of a system so that no data is lost or overwritten before the data is transferred from a cache to the target memory. Thus, conventional storage controllers typically inhibit deep idle states while enabled for bus mastering in order to ensure that the processor caches are kept coherent. There may be periods of time before and after actual storage data transfer, however, in which the prohibition against non-snoopable idle states may be unnecessary. The result may be additional power consumption and/or reduced battery life. This issue can be particularly challenging for storage intensive workloads such as DVD playback, audio playback, multimedia content creation/viewing, gaming, and others.